home *** CD-ROM | disk | FTP | other *** search
- #: :CompileDB.txt
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- # Compiler information listings for Thinking in
- # C++ 2nd Edition By Bruce Eckel. See copyright
- # notice in Copyright.txt.
- # This is used by ExtractCode.cpp to generate the
- # makefiles for the book, including the command-
- # line flags for each vendor's compiler and
- # linker. Following that are the code listings
- # from the book that will not compile for each
- # compiler. The listings are, to the best of my
- # knowledge, correct Standard C++ (According to
- # the Final Draft International Standard). Please
- # note that the tests were performed with the
- # most recent compiler that I had at the time,
- # and may have changed since this file was
- # created.
- # After ExtractCode.cpp creates the makefiles
- # for each chapter subdirectory, you can say
- # "make egcs", for example, and all the programs
- # that will successfully compile with egcs will
- # be built.
- #################################################
- # Compiling all files, for a (theoretical) fully-
- # conformant compiler. This assumes a typical
- # compiler under dos:
- { all }
- # Object file name extension in parentheses:
- (obj)
- # Executable file extension in square brackets:
- [exe]
- # The leading '&' is for special directives. The
- # dos directive means to replace '/'
- # with '\' in all directory paths:
- &dos
- # The following lines will be inserted directly
- # into the makefile (sans the leading '@' sign)
- # If your environment variables are set to
- # establish these you won't need to use arguments
- # on the make command line to set them:
- # CPP: the name of your C++ compiler
- # CPPFLAGS: Compilation flags for your compiler
- # OFLAG: flag to give the final executable name
- #@CPP = yourcompiler
- #@CPPFLAGS =
- #@OFLAG = -e
- @.SUFFIXES : .obj .cpp .c
- @.cpp.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- @.c.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- # Assumes all files will compile
- # See later for an example of Unix configuration
- #################################################
- # Borland C++ Builder 4 -- With Upgrade!!!
- # Target name used in makefile:
- { Borland }
- # Object file name extension in parentheses:
- (obj)
- # Executable file extension in square brackets:
- [exe]
- # The leading '&' is for special directives. The
- # dos directive means to replace '/'
- # with '\' in all directory paths:
- &dos
- # Inserted directly into the makefile (without
- # the leading '@' sign):
- @# Note: this requires the upgrade from
- @# www.Borland.com for successful compilation!
- @CPP = Bcc32
- @CPPFLAGS = -w-inl -w-csu -wnak
- @OFLAG = -e
- @.SUFFIXES : .obj .cpp .c
- @.cpp.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- @.c.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- # Doesn't support static const
- # array initialization:
- C10:StaticArray.cpp
- # Problem with string constructors at run-time:
- C17:ICompare.cpp
- # Template bug:
- C19:ArraySize.cpp
- # Not sure:
- C20:AssocInserter.cpp
- # Bitset is Broken in this compiler's library:
- C20:BitSet.cpp
- # Standard Library problem:
- C21:SearchReplace.cpp
- # Function-level try blocks not implemented:
- C23:FunctionTryBlock.cpp
- # Uses the SGI STL extensions, so it actually
- # isn't supposed to compile with this
- # compiler:
- C20:MapVsHashMap.cpp
- C21:MemFun4.cpp
- C21:Compose2.cpp
- #################################################
- # Visual C++ 6.0 -- With Service Pack 3!!!
- # Target name used in makefile:
- { Microsoft }
- # Object file name extension in parentheses:
- (obj)
- # Executable file extension in square brackets:
- [exe]
- # The leading '&' is for special directives. The
- # dos directive means to replace '/'
- # with '\' in all directory paths:
- &dos
- # Inserted directly into the makefile (without
- # the leading '@' sign):
- @# Note: this requires the service Pack 3 from
- @# www.Microsoft.com for successful compilation!
- @CPP = cl
- @CPPFLAGS = -GX -GR
- @OFLAG = -o
- @.SUFFIXES : .obj .cpp .c
- @.cpp.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- @.c.obj :
- @ $(CPP) $(CPPFLAGS) -c $<
- C02:Incident.cpp
- # It can't even handle multiple "for(int i =...:"
- # statements in the same scope (a really old
- # language feature!):
- C02:Intvector.cpp
- C03:Assert.cpp
- C07:MemTest.cpp
- C09:Cpptime.cpp
- C12:Comma.cpp
- C13:GlobalNew.cpp
- # Common problem with namespaces and C libraries:
- C17:ICompare.cpp
- C18:FileClassTest.cpp
- C18:Datagen.cpp
- C18:Datascan.cpp
- # Can't do template type induction properly:
- C19:ArraySize.cpp
- # Doesn't know about template-templates:
- C19:TemplateTemplate.cpp
- C19:applyGromit2.cpp
- # Can't do template specializations:
- C19:Sorted.cpp
- # Can't do explicit template instantiation:
- C19:ExplicitInstantiation.cpp
- # Missing part of iostreams:
- C20:StreamIt.cpp
- # Problem with STL:
- C20:BasicSequenceOperations.cpp
- C20:VectorCoreDump.cpp
- C20:DequeConversion.cpp
- C20:Stack2.cpp
- # Problem with static class initializer:
- C20:BankTeller.cpp
- # Missing STL functionality:
- C20:VectorOfBool.cpp
- # STL problem:
- C20:AssocInserter.cpp
- # Various problems:
- C20:WildLifeMonitor.cpp
- C20:MultiSet1.cpp
- C20:Thesaurus.cpp
- # These use the SGI STL extensions, so they
- # actually aren't supposed to compile
- # with this compiler:
- C20:MapVsHashMap.cpp
- C21:Compose2.cpp
- # Namespace problem again, and other issues:
- C21:FunctionObjects.cpp
- C21:Binder1.cpp
- C21:Binder3.cpp
- C21:Binder4.cpp
- C21:RandGenTest.cpp
- C21:MemFun1.cpp
- C21:MemFun2.cpp
- C21:FindBlanks.cpp
- C21:MemFun3.cpp
- C21:MemFun4.cpp
- C21:FillGenerateTest.cpp
- C21:Counting.cpp
- C21:Manipulations.cpp
- C21:SearchReplace.cpp
- C21:Comparison.cpp
- C21:Removing.cpp
- C21:SortTest.cpp
- C21:SortedSearchTest.cpp
- C21:MergeTest.cpp
- C21:SetOperations.cpp
- C21:ForEach.cpp
- C21:Transform.cpp
- C21:CalcInventory.cpp
- C21:TransformNames.cpp
- C21:SpecialList.cpp
- C21:NumericTest.cpp
- # Most compilers don't support this yet:
- C23:FunctionTryBlock.cpp
- # Lack of support for 'static const' again:
- C25:Recycle2.cpp
- C26:ExtractCode.cpp
- C26:MemTest.cpp
- # All these do not compile only becase of the
- # lack of support for 'static const'. To make
- # them compile, you must substitute the
- # 'enum hack' shown in chapter 8:
- C08:StringStack.cpp
- C08:Quoter.cpp
- C08:Volatile.cpp
- C10:StaticArray.cpp
- C11:HowMany2.cpp
- C11:Autocc.cpp
- C11:Pmem2.cpp
- C12:Smartp.cpp
- C12:Iosop.cpp
- C12:Copymem.cpp
- C12:Refcount.cpp
- C12:RefcountTrace.cpp
- C13:MallocClass.cpp
- C13:Framis.cpp
- C13:ArrayNew.cpp
- C14:FName1.cpp
- C14:FName2.cpp
- C16:IStack.cpp
- C16:Stemp.cpp
- C16:Stemp2.cpp
- C16:Stackt.cpp
- C23:Cleanup.cpp
- C24:Selfrtti.cpp
- C24:Reinterp.cpp
- #################################################
- # The egcs (Experimental g++ compiler) snapshot
- # under Linux, dated July 18, 1998
- { egcs }
- (o)
- []
- # The unix directive controls the way some of the
- # makefile lines are generated:
- &unix
- @CPP = g++
- @OFLAG = -o
- @.SUFFIXES : .o .cpp .c
- @.cpp.o :
- @ $(CPP) $(CPPFLAGS) -c $<
- @.c.o :
- @ $(CPP) $(CPPFLAGS) -c $<
- # Files that won't compile
- # Error in streambuf.h:
- C18:Cppcheck.cpp
- # Not sure:
- C19:applyGromit2.cpp
- # Missing the standard library 'at()':
- C19:Sorted.cpp
- C19:ExplicitInstantiation.cpp
- # Problem with the egcs iterator header
- C20:StreambufIterator.cpp
- C20:RawStorageIterator.cpp
- # egcs is missing istreambuf_iterator
- C20:WordList2.cpp
- C20:TokenizeTest.cpp
- C20:TokenIteratorTest.cpp
- C20:WordCount.cpp
- C20:MultiSetWordCount.cpp
- # egcs is missing std::iterator:
- C20:Ring.cpp
- # egcs is missing char_traits
- C17:ICompare.cpp
- # egcs vector and deque (at least) are missing
- # the "at()" functions:
- C20:IndexingVsAt.cpp
- # There's a problem with the egcs string class:
- C17:Compare2.cpp
- # Broken in this compiler's library:
- C20:BitSet.cpp
- # These are because <sstream> isn't implemented
- C18:NumberPhotos.cpp
- C19:stringConvTest.cpp
- C20:StringVector.cpp
- C20:FEditTest.cpp
- C20:StringDeque.cpp
- C20:VectorOfBool.cpp
- C20:WildLifeMonitor.cpp
- C21:SortTest.cpp
- C21:SortedSearchTest.cpp
- C21:Binder4.cpp
- C21:ForEach.cpp
- # Problem in parsing PrintSequence.h:
- C21:Counting.cpp
- C21:Manipulations.cpp
- C21:SearchReplace.cpp
- C21:Comparison.cpp
- C21:Removing.cpp
- C21:CalcInventory.cpp
- C21:TransformNames.cpp
- C21:SpecialList.cpp
- C21:NumericTest.cpp
- # The end tag is required:
- #///:~
-